package com.canic.dkd.web.shop.mapper;

import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.canic.dkd.web.merchandise.dto.MerchandiseOutputDTO;
import com.canic.dkd.web.merchandise.dto.TypeOutputDTO;
import com.canic.dkd.web.shop.dto.ShopOutputDTO;
import com.canic.dkd.web.shop.entity.Shop;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * ShopMapper
 * @author ZC
 */
@Repository
public interface ShopMapper extends BaseMapper<Shop> {

    /**
     * 查询全部
     * @return List<Shop>
     */
    List<Shop> fullList();

    /**
     * 分页
     * @param page
     * @return List<Shop>
     */
    List<Shop> findAllShopPage(Page page);

    /**
     * 获取满足条件数据，带查询条件;对应xml同一个查询(findAllShopPage)
     * @return
     */
    List<Shop> eligibleList(Shop shop);

    /**
     * 分页 获取满足条件数据，带查询条件;对应xml同一个查询(findAllShopPage)
     * @param page
     * @return List<Shop>
     */
    List<Shop> eligibleList(Page page,Shop shop);

    /**
     * 分页 获取满足条件数据，带查询条件;带出头体结构的查询，头体结构的“头”
     * @param page
     * @return List<Shop>
     */
    List<ShopOutputDTO> eligibleComplexPageList(Page page, Map<String, Object> paraMap);

    /**
     * 上一个查询的子查询，根据店铺ID查询类别集合，头体结构的“体”
     * @param shopId
     * @return
     */
    List<TypeOutputDTO> getTypeListByShopId(String shopId);

    /**
     * 没实现 上一个查询的子查询，根据类别ID查询商品集合，头体结构的“体”的“体”
     * “两个表关联查询”
     * @param paraMap
     * @return
     */
    List<MerchandiseOutputDTO> getMerchandiseListByTypeId(Page page, Map<String, Object> paraMap);
}
